一覧に戻る

QGISとMapTiler Terrain RGBでかんたんDEM活用

#GIS#mapbox#QGIS#DEM#Maptiler

TL;DR

  • QGIS 3.24から、MapTiler Terrain RGBなどの標高タイルをサポート
  • 標高タイルをシームレスにDEMとして扱える
  • 3DビューやDEMの入手が簡単に

QGIS 3.24の目玉機能「MapTiler Terrain RGB」のサポート

Terrain RGBとは、標高値を所定のルールでRGB値にエンコードした画像からなるラスタータイルです。QGISは3.24からMapTiler Terrain RGBをサポートします。これはつまり、ラスタータイル画像のRGB値から標高値を復元してDEMとして扱えるようになるということです。

Terrain RGBは、配信する会社によって、MapTiler Terrain RGBと呼ばれたりMapbox Terrain RGBと呼ばれたりしますが、Terrain RGBとしての規格はどちらも同じです。QGISはTerrain RGBだけでなくTerrarium RGBもサポートしており、こちらも理屈は同じですが、エンコードのルールが異なります。

標高値とRGB値の変換ルールについては下記の記事を参照 https://qiita.com/Kanahiro/items/e22594b738655a189c1d#rgb%E5%80%A4%E3%81%AE%E6%A8%99%E9%AB%98%E6%8F%9B%E7%AE%97

MapTiler Terrain RGBを見てみる

https://www.maptiler.com/

MapTilerのタイル画像を使うにはアカウント登録が必要です。

さて、MapTiler Terrain RGBのタイルURLは下記になります、YOUR_ACCESS_TOKENは利用者ごとに付与されるキーです。アカウント登録後にここで確認できます。

https://api.maptiler.com/tiles/terrain-rgb/{z}/{x}/{y}.png?key=<YOUR_ACCESS_KEY>

URLがわかったら、下記の手順でXYZ Tilesに新規接続を作成します。

MapTiler Terrain RGBはズームレベル0-12で提供されています

タイル画像を見てみます。

なんとなく地形っぽくは見えますが、見慣れない色合いです。

TerrainRGBをDEMとして表示する

ではMapTiler Terrain RGBをDEMとして表示してみます。 XYZ接続のInterpretationMapTiler Terrain RGBを選択します。

この状態で再度タイルを見てみます。

グレースケールの、割と見慣れた色合いの標高データとなりました。

ただちょっと見た目が淡すぎます。というのも、Terrain RGBの標高の定義域の下限-10000mから、地球の最大標高をカバーする9000mまでの値で白黒のグラデーションをしているためですね(要は分解能が大きすぎる)。見た目だけの話なので、解析だとかには影響ないのですが、とりあえず0-4000mで色塗りしてみます。レイヤスタイルパネルで最小・最大値を書き換えます。

富士山周辺です、見慣れた感じになりました。

ただDEMっぽい見た目になるだけでは面白くありません。実際、このタイルDEMは3D表示や解析に利用していくことが可能です。

タイルDEMで3Dビュー

地理院タイル空中写真を追加しておき、タイルDEMは非表示としておきます。

3Dマップビューを開きます

設定を開きます

「地形」を画像のとおり設定します

すると3Dで地形が表示されます

タイルの切れ目がやや気になりますが、これだけ手軽に3D表示が実現出来るのはうれしい

タイルDEMをGeoTIFFとして切り出す

タイルDEMを切り出してGeoTIFF形式のDEMとすることができます。 ここで、MapTiler Terrain RGBの最大ズームレベルは12で、タイル解像度が512pxなので、おおむね20m弱程度の地理解像度であること、および、標高値の分解能が0.1mであることに留意する必要があります。

下記の手順でレイヤーをエクスポートすれば、GeoTIFF形式のDEMが得られます。

領域はキャンバスの領域とするのが簡単です。解像度はネイティブに近い縦横20mとしました。

するとこのようなGeoTIFFが得られました。

これで煮るなり焼くなり出来ます…が注意点として、得られるDEMにやや縞があります、傾斜を計算してみます。

富士山山頂付近ですが、一定間隔で傾斜が大きくなる縞が見えます。なので、精密な解析には使わない、とか、リサンプリングしてならす、といったアプローチが必要でしょう。

データソースの問題かQGISの問題かまでは調べていません、改善に期待

終わりに

Terrain RGBは、結構前からある規格な割に、今回紹介したQGISやMapbox GL JSでの3D表示など最近いろいろと活用の幅が広がってきています(ぜひ地理院標高タイルもTerrain RGBで配信されるようになってほしいですね)。